package common.utils.sql;
//package com.fanfan.util;
//
//import java.nio.ByteBuffer;
//import java.nio.CharBuffer;
//
//import org.apache.commons.lang.StringUtils;
//
///**
// * sql预编译
// * 
// * @ClassName SqlInjectUtil
// * @author <a href="892042158@qq.com" target="_blank">于国帅</a>
// * @date 2018年7月20日 下午4:33:43
// *
// */
//public class SqlInjectUtil {
//    /**
//     * 采用jdbc 的sql 预编译
//     * 
//     * @Title escapeSql
//     * @author 于国帅
//     * @date 2018年7月20日 下午4:39:40
//     * @param sql
//     * @return String
//     */
//    public static synchronized String escapeSql(String sql) {
//        if (StringUtils.isBlank(sql)) {
//            return null;
//        }
////        StringEscapeUtils.escapeSql(sql); // 剥夺所有的 ' 屏蔽 类似于 ' or 1= ' 1 这种写法
//        StringBuilder buf = new StringBuilder((int) (sql.length() * 1.1));
//        buf.append('\'');
//        //
//        // Note: buf.append(char) is _faster_ than appending in blocks, because the block append requires a System.arraycopy().... go
//        // figure...
//        //
//        for (int i = 0, len = sql.length(); i < len; ++i) {
//            char c = sql.charAt(i);
//            switch (c) {
//                case 0: /* Must be escaped for 'mysql' */
//                    buf.append('\\');
//                    buf.append('0');
//                    break;
//                case '\n': /* Must be escaped for logs */
//                    buf.append('\\');
//                    buf.append('n');
//
//                    break;
//
//                case '\r':
//                    buf.append('\\');
//                    buf.append('r');
//
//                    break;
//
//                case '\\':
//                    buf.append('\\');
//                    buf.append('\\');
//
//                    break;
//
//                case '\'':
//                    buf.append('\\');
//                    buf.append('\'');
//
//                    break;
//
//                case '"': /* Better safe than sorry */
//                    if (this.usingAnsiMode) {
//                        buf.append('\\');
//                    }
//
//                    buf.append('"');
//
//                    break;
//
//                case '\032': /* This gives problems on Win32 */
//                    buf.append('\\');
//                    buf.append('Z');
//
//                    break;
//
//                case '\u00a5':
//                case '\u20a9':
//                    // escape characters interpreted as backslash by mysql
//                    if (this.charsetEncoder != null) {
//                        CharBuffer cbuf = CharBuffer.allocate(1);
//                        ByteBuffer bbuf = ByteBuffer.allocate(1);
//                        cbuf.put(c);
//                        cbuf.position(0);
//                        this.charsetEncoder.encode(cbuf, bbuf, true);
//                        if (bbuf.get(0) == '\\') {
//                            buf.append('\\');
//                        }
//                    }
//                    buf.append(c);
//                    break;
//
//                default:
//                    buf.append(c);
//            }
//        }
//
//        buf.append('\'');
//        return buf.toString();
//    }
//}
